package com.analysis.dto;

import java.util.List;

/**
 * 品牌曝光量分析响应DTO
 */
public class BrandExposureResponse {

    /**
     * 曝光量统计
     */
    private List<ModelExposureCount> ownProductExposure;

    /**
     * 曝光量详细结果
     */
    private List<QuestionExposureDetail> ownProductDetailedExposure;

    /**
     * 排名分析
     */
    private List<QuestionRankingDetail> ownProductRankingList;

    /**
     * 竞品对比分析
     */
    private List<CompetitorComparison> competitorComparison;


    public BrandExposureResponse() {
    }

    public BrandExposureResponse(List<ModelExposureCount> ownProductExposure,
                                 List<QuestionExposureDetail> ownProductDetailedExposure,
                                 List<CompetitorComparison> competitorComparison,
                                 List<BrandExposureResponse.QuestionRankingDetail> ownProductRankingList) {
        this.ownProductExposure = ownProductExposure;
        this.ownProductDetailedExposure = ownProductDetailedExposure;
        this.competitorComparison = competitorComparison;
        this.ownProductRankingList = ownProductRankingList;
    }

    // Getters and Setters
    public List<ModelExposureCount> getOwnProductExposure() {
        return ownProductExposure;
    }

    public void setOwnProductExposure(List<ModelExposureCount> ownProductExposure) {
        this.ownProductExposure = ownProductExposure;
    }

    public List<QuestionExposureDetail> getOwnProductDetailedExposure() {
        return ownProductDetailedExposure;
    }

    public void setOwnProductDetailedExposure(List<QuestionExposureDetail> ownProductDetailedExposure) {
        this.ownProductDetailedExposure = ownProductDetailedExposure;
    }

    public List<CompetitorComparison> getCompetitorComparison() {
        return competitorComparison;
    }

    public void setCompetitorComparison(List<CompetitorComparison> competitorComparison) {
        this.competitorComparison = competitorComparison;
    }

    public List<QuestionRankingDetail> getOwnProductRankingList() {
        return ownProductRankingList;
    }

    public void setOwnProductRankingList(List<QuestionRankingDetail> ownProductRankingList) {
        this.ownProductRankingList = ownProductRankingList;
    }

    /**
     * AI模型曝光次数统计
     */
    public static class ModelExposureCount {
        private String aiModelName;
        private String exposureCount;
        private BrandExposureAiCallDTO data;

        public ModelExposureCount() {
        }

        public ModelExposureCount(String aiModelName, String exposureCount, BrandExposureAiCallDTO data) {
            this.aiModelName = aiModelName;
            this.exposureCount = exposureCount;
            this.data = data;
        }

        public String getAiModelName() {
            return aiModelName;
        }

        public void setAiModelName(String aiModelName) {
            this.aiModelName = aiModelName;
        }

        public String getExposureCount() {
            return exposureCount;
        }

        public void setExposureCount(String exposureCount) {
            this.exposureCount = exposureCount;
        }

        public BrandExposureAiCallDTO getData() {
            return data;
        }

        public void setData(BrandExposureAiCallDTO data) {
            this.data = data;
        }
    }


    /**
     * 问题曝光详情
     */
    public static class QuestionExposureDetail {
        private String question;
        private List<ModelExposureCount> details;

        public QuestionExposureDetail() {
        }

        public QuestionExposureDetail(String question, List<ModelExposureCount> details) {
            this.question = question;
            this.details = details;
        }

        public String getQuestion() {
            return question;
        }

        public void setQuestion(String question) {
            this.question = question;
        }

        public List<ModelExposureCount> getDetails() {
            return details;
        }

        public void setDetails(List<ModelExposureCount> details) {
            this.details = details;
        }
    }



    /**
     * 排名分析
     */
    public static class QuestionRankingDetail {
        private String question;
        private List<RankingDetail> details;

        public QuestionRankingDetail(String question, List<RankingDetail> details) {
            this.question = question;
            this.details = details;
        }

        public String getQuestion() {
            return question;
        }

        public void setQuestion(String question) {
            this.question = question;
        }

        public List<RankingDetail> getDetails() {
            return details;
        }

        public void setDetails(List<RankingDetail> details) {
            this.details = details;
        }
    }

    /**
     * 模板排名
     */
    public static class RankingDetail {
        private String aiModelName;
        private Integer ranking;

        public RankingDetail(String aiModelName, Integer ranking) {
            this.aiModelName = aiModelName;
            this.ranking = ranking;
        }

        public String getAiModelName() {
            return aiModelName;
        }

        public void setAiModelName(String aiModelName) {
            this.aiModelName = aiModelName;
        }

        public Integer getRanking() {
            return ranking;
        }

        public void setRanking(Integer ranking) {
            this.ranking = ranking;
        }
    }


    /**
     * 竞品对比分析
     */
    public static class CompetitorComparison {
        private String productName;
        private Integer productExposureCount;
        private String competitorName;
        private Integer competitorExposureCount;

        public CompetitorComparison() {
        }

        public CompetitorComparison(String productName, Integer productExposureCount,
                                    String competitorName, Integer competitorExposureCount) {
            this.productName = productName;
            this.productExposureCount = productExposureCount;
            this.competitorName = competitorName;
            this.competitorExposureCount = competitorExposureCount;
        }

        public String getProductName() {
            return productName;
        }

        public void setProductName(String productName) {
            this.productName = productName;
        }

        public Integer getProductExposureCount() {
            return productExposureCount;
        }

        public void setProductExposureCount(Integer productExposureCount) {
            this.productExposureCount = productExposureCount;
        }

        public String getCompetitorName() {
            return competitorName;
        }

        public void setCompetitorName(String competitorName) {
            this.competitorName = competitorName;
        }

        public Integer getCompetitorExposureCount() {
            return competitorExposureCount;
        }

        public void setCompetitorExposureCount(Integer competitorExposureCount) {
            this.competitorExposureCount = competitorExposureCount;
        }
    }
}
